Skip to content

Conversation

@marek-veber
Copy link

Add ARO (Azure RedHat OpenShift) HCP support

This PR include support for Microsoft.RedHatOpenShift HCP (Hosted Control Plane) clusters with API version 2024-06-10-preview.

Changes Made

  • Added support for new RedHat OpenShift HCP resources:
    • HcpOpenShiftClusters - Main HCP cluster resource
    • NodePools - Node pool management
    • ExternalAuths - External authentication configuration

Special Notes

This update brings in the latest Azure REST API specifications that include Azure RedHat OpenShift HCP support. The new API version 2024-06-10-preview provides preview functionality for managing hosted control plane OpenShift clusters on Azure.

Checklist

  • this PR contains documentation
  • this PR contains tests
  • this PR contains YAML Samples

Copy link
Member

@theunrepentantgeek theunrepentantgeek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really good start - looking forward to seeing this merged.

Your next step will be to write a test to exercise the new resource and confirm that it works as intended.

Despite ARM providing a uniform API, we've found enough variation in the way different resources behave that we've needed to create a number of extension-points for customization. A coded test in the controllers package is one good way to flush out any issues in this areas.

Once that test passes, your samples need testing too.

A quick security note - all the test recordings are automatically redacted, removing sensitive information such as subscription IDs, access tokens, SSH keys and so on.

2024-06-10-preview:
HcpOpenShiftClusters_NodePool:
$supportedFrom: v2.16.0
$exportAs: HcpOpenShiftClustersNodePool
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that the group redhatopenshift will always be present when the resource is specified - effectively scoping the resource name - I'd suggest simplifying all the resource names. They don't need to have a common prefix.

Suggested change
$exportAs: HcpOpenShiftClustersNodePool
$exportAs: OpenShiftClusterNodePool

or maybe even

Suggested change
$exportAs: HcpOpenShiftClustersNodePool
$exportAs: NodePool

$exportAs: HcpOpenShiftClustersNodePool
HcpOpenShiftClusters_ExternalAuth:
$supportedFrom: v2.16.0
$exportAs: HcpOpenShiftClustersExternalAuth
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
$exportAs: HcpOpenShiftClustersExternalAuth
$exportAs: ExternalAuth

│ │ │ ├── Rule 0: Maximum: 10080
│ │ │ └── Rule 1: Minimum: 0
│ │ ├── Platform: *Object (5 properties)
│ │ │ ├── ManagedResourceGroup: *string
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a simple string (e.g. my-rg) or is it an ARM reference (/subscriptions/resourcegroups/my-rg)? If the later, you should mark this with $referenceType: arm in azure-arm.yaml.

Followup question - can this be user specified? If not, you may need to use a TypeTransformer to trim it from the Spec type. There are plenty of examples on how to do this already azure-arm.yaml.

@matthchr
Copy link
Member

matthchr commented Oct 6, 2025

We're planning on releasing ASO v2.16 next week (roughly ETA Oct 13). Do you think that you can respond to @theunrepentantgeek's comments by then @marek-veber? Let us know if you'll not be able to make that but think you could make slightly later that week as there may a little flex possible in the schedule.

@marek-veber marek-veber force-pushed the RedHatOpenShift-hcpclusters-2024-06-10-preview branch from 3056677 to 3807781 Compare October 14, 2025 10:33
Copy link
Member

@theunrepentantgeek theunrepentantgeek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Making good progress.

Do you need to update the submodule?

It's usual for updates of the azure-rest-api-specs submodule to bring along documentation changes and other things - and since our CI checks that generated code is up to date, this might fail the builds.

Please check to see if the generated code for any other resources is changed by this - if so, let me know and I'll do an isolated update PR for the submodule to pull in those changes without polluting your PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We won't be able to merge the PR while these files are present; best to rebase and omit the commit that added them.

@bingikarthik
Copy link
Contributor

@marek-veber Thanks for this PR, as we want to have the same..!
Could you please address the feedback, so that the PR merge soon?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

4 participants